package com.telchina.workorder.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.telchina.common.annotation.Excel;
import com.telchina.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 延期申请对象 wo_extension
 *
 * @author konghao
 * @date 2023-02-21
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class WoExtension extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(
            type = IdType.ASSIGN_UUID
    )
    private String id;

    /**
     * 延期申请单编号
     */
    @Excel(name = "延期申请单编号")
    @ApiModelProperty(value = "延期申请单编号")
    private String extensionNo;

    /**
     * 预计完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
    @Excel(name = "预计完成时间" , width = 30, dateFormat = "yyyy-MM-dd HH:ss:mm")
    @ApiModelProperty(value = "预计完成时间")
    private Date estimatedCompletionTime;

    /**
     * 延期原因
     */
    @Excel(name = "延期原因")
    @ApiModelProperty(value = "延期原因")
    private String extensionReason;

    /**
     * 是否同意延期
     */
    @Excel(name = "是否同意延期")
    @ApiModelProperty(value = "是否同意延期")
    private String replyStatus;

    /**
     * 批复意见
     */
    @Excel(name = "批复意见")
    @ApiModelProperty(value = "批复意见")
    private String replyOpinion;

    /**
     * 审批通过时间
     */
    @Excel(name = "审批通过时间")
    @ApiModelProperty(value = "审批通过时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
    private Date approveTime;

    /**
     * 填报人
     */
    private String filledBy;

    /**
     * 填报时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
    private Date filledTime;

    /**
     * 回复单编号
     */
    private String replyNo;

    /**
     * 工单编号
     */
    private String workOrderNumber;

    /**
     * 流程实例ID
     */
    private String instanceId;

    /**
     * 审批状态
     */
    private String approveStatus;

}
